package cn.wolfcode.wolf2w.redis.service;

import cn.wolfcode.wolf2w.redis.vo.StrategyStatisVO;

import java.util.List;

public interface IStrategyStatisVORedisService {

    /**
     * 阅读数+1
     * @param sid
     * @param num
     */
    void viewnumIncrease(String sid, int num);

    /**
     * 根据攻略id拿装有统计数据的对象
     * @param sid
     * @return
     */
    StrategyStatisVO getVo(String sid);

    /**
     * 确认是收藏还是取消收藏,并执行响应操作
     * true 收藏  false取消收藏
     * @param sid
     * @param uid
     */
    boolean favor(String sid, String uid);

    /**
     * 根据攻略id拿取其统计数据对象
     * @param sid
     * @return
     */
    StrategyStatisVO getStrategyStatisVo(String sid);

    /**
     * 将vo对象存进redis缓存中
     * @param vo
     */
    void setStrategyStatisVo(StrategyStatisVO vo);

    List<String> getUserStrategies(String userId);

    /**
     * 将指定id的攻略的评论数加num
     * @param strategyId
     * @param num
     */
    void addCommentNum(String strategyId, int num);

    /**
     * 某个用户给某个攻略顶
     * true 成功  false   失败
     * @param sid
     * @param uid
     * @return
     */
    boolean strategyThumbup(String sid, String uid);

    /**
     * 判断该攻略VO是否已在缓存库
     * @param sid
     * @return
     */
    boolean isStrategyVOExists(String sid);

    /**
     * 根据统配符查指定前缀的所有VO对象
     * @param pattern
     * @return
     */
    List<StrategyStatisVO> queryStartegyVoByPattern(String pattern);
}
